home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / util / misc / VMM_src.lha / VMM / MUI / menus.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-16  |  4.2 KB  |  163 lines

  1. #include "defs.h"
  2.  
  3. /**********************************************************************/
  4. /*                            Menu functions                          */
  5. /**********************************************************************/
  6.  
  7. BOOL MenuOpen (void)
  8.  
  9. {
  10. struct FileRequester *OpenReq;
  11. char path [80];
  12.  
  13. if ((OpenReq = MUI_AllocAslRequest (ASL_FileRequest, NULL)) == NULL)
  14.   {
  15.   printf ("Out of memory\n");
  16.   return (TRUE);
  17.   }
  18.  
  19. if (MUI_AslRequestTags (OpenReq, ASLFR_Window, VMMWindow,
  20.                     ASLFR_SleepWindow, TRUE,
  21.                     ASLFR_TitleText, GetVMMString (msgLoadPrefs),
  22.                     ASLFR_RejectIcons, TRUE,
  23.                     TAG_DONE, 0L))
  24.   {
  25.   strcpy (path, OpenReq->fr_Drawer);
  26.   AddPart (path, OpenReq->fr_File, 80);
  27.   ReadConfigFileMUI (path);
  28.   }
  29.  
  30. MUI_FreeAslRequest (OpenReq);
  31. return (TRUE);
  32. }
  33.  
  34. /**********************************************************************/
  35.  
  36. BOOL MenuSaveAs (void)
  37.  
  38. {
  39. struct FileRequester *SaveReq;
  40. char path [80];
  41. if (!ValidSettings ())
  42.   return (TRUE);
  43.  
  44. if ((SaveReq = MUI_AllocAslRequest (ASL_FileRequest, NULL)) == NULL)
  45.   {
  46.   printf ("Out of memory\n");
  47.   return (TRUE);
  48.   }
  49.  
  50. if (MUI_AslRequestTags (SaveReq, ASLFR_Window, VMMWindow,
  51.                     ASLFR_SleepWindow, TRUE,
  52.                     ASLFR_TitleText, GetVMMString (msgSavePrefs),
  53.                     ASLFR_RejectIcons, TRUE,
  54.                     ASLFR_DoSaveMode, TRUE,
  55.                     TAG_DONE, 0L))
  56.   {
  57.   strcpy (path, SaveReq->fr_Drawer);
  58.   AddPart (path, SaveReq->fr_File, 80);
  59.   WriteConfigFile (path);
  60.   }
  61.  
  62. MUI_FreeAslRequest (SaveReq);
  63. return (TRUE);
  64. }
  65.  
  66. /**********************************************************************/
  67.  
  68. BOOL MenuSaveWin (void)
  69.  
  70. {
  71. if (SystemTags ("copy >nil: ENV:mui/" PROGNAME "#? ENVARC:mui quiet", 
  72.                 TAG_DONE) != NULL)
  73.   MUI_Request (Application, 0L, 0L, NULL, "*_OK", GetVMMString (msgSaveWinError));
  74.  
  75. return (TRUE);
  76. }
  77.  
  78. /**********************************************************************/
  79.  
  80. BOOL MenuAbout (void)
  81.  
  82. {
  83. MUI_Request (Application, 0L, 0L, NULL, "*_OK", GetVMMString (msgAboutString));
  84. return (TRUE);
  85. }
  86.  
  87. /**********************************************************************/
  88.  
  89. BOOL MenuHide (void)
  90.  
  91. {
  92. if (!VMM_RUNNING)
  93.   StartVMM ();
  94. return (FALSE);
  95. }
  96.  
  97. /**********************************************************************/
  98.  
  99. BOOL MenuDefault (void)
  100.  
  101. {
  102. struct TaskEntry te;
  103.  
  104. te.te_TaskName = GetVMMString (msgDefault);
  105. te.te_teif.MinPublic = USE_NEVER;
  106. te.te_teif.MinNonPublic = USE_ALWAYS;
  107. te.te_teif.DataPaging = DP_TRUE;
  108. te.te_teif.CodePaging = FALSE;
  109. te.te_teif.IsDefault = TRUE;
  110.  
  111. DoMethod (LV_TaskList, MUIM_List_Clear);
  112. DoMethod (LV_TaskList, MUIM_List_InsertSingle, &te, 0);
  113. set (LV_TaskList, MUIA_List_Active, 0);
  114.  
  115. set (CM_StatEnabled, MUIA_Selected, TRUE);
  116. set (CM_Zoomed, MUIA_Selected, FALSE);
  117. set (ST_ZTop, MUIA_String_Integer, 0);
  118. set (ST_ZLeft, MUIA_String_Integer, 0);
  119. set (ST_UnZTop, MUIA_String_Integer, 0);
  120. set (ST_UnZLeft, MUIA_String_Integer, 0);
  121.  
  122. set (CY_Policy, MUIA_Cycle_Active, MT_DYNAMIC);
  123. set (CY_Device, MUIA_Cycle_Active, PD_FILE);
  124. set (SL_MinMem, MUIA_Slider_Level, 1);       /* 100 K */
  125. set (SL_MaxMem, MUIA_Slider_Level, 1);
  126. set (CY_MemFlags, MUIA_Cycle_Active, MF_FAST);
  127. set (ST_PartName, MUIA_String_Contents, NULL);
  128. set (ST_FileName, MUIA_String_Contents, "SYS:page_file");
  129. set (SL_FileSize, MUIA_Slider_Level, 1);
  130.  
  131. set (SL_Prio, MUIA_Slider_Level, 40);
  132. set (SL_Buffer, MUIA_Slider_Level, 10);
  133.  
  134. set (ST_EnableHotkey, MUIA_String_Contents, DEFAULT_ENABLE_KEY);
  135. set (ST_DisableHotkey, MUIA_String_Contents, DEFAULT_DISABLE_KEY);
  136.  
  137. set (ST_MinVMAlloc, MUIA_String_Integer, DEFAULT_MINVMSIZE);
  138. set (CM_CacheZ2RAM, MUIA_Selected, TRUE);
  139.  
  140. return (TRUE);
  141. }
  142.  
  143. /**********************************************************************/
  144.  
  145. BOOL HandleMenuChoice (ULONG id)
  146.  
  147. {
  148. switch (id)
  149.   {
  150.   case OPEN_ID:          return (MenuOpen ());
  151.   case SAVE_AS_ID:       return (MenuSaveAs ());
  152.   case SAVE_WIN_ID:      return (MenuSaveWin ());
  153.   case ABOUT_ID:         return (MenuAbout ());
  154.   case HIDE_ID:          return (MenuHide ());
  155.   case RESET_ID:         return (MenuDefault ());
  156.   case LAST_SAVED_ID:    ReadConfigFileMUI (CFG_NAME_SAVE);
  157.                          return (TRUE);
  158.   case RESTORE_ID:       ReadConfigFileMUI (CfgName);
  159.                          return (TRUE);
  160.   }
  161. return (FALSE);
  162. }
  163.